// 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ，原地 对它们进行排序，使得相同颜色的元素相邻，并按照红色、白色、蓝色顺序排列。

// 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

// 必须在不使用库内置的 sort 函数的情况下解决这个问题。

// 示例 1：

// 输入：nums = [2,0,2,1,1,0]
// 输出：[0,0,1,1,2,2]
// 示例 2：

// 输入：nums = [2,0,1]
// 输出：[0,1,2]

// 时间复杂度超100%
var sortColors = function (nums) {
  let start = 0;
  for (let left = 0; left < nums.length; left++) {
    if (nums[left] === 0) {
      [nums[start], nums[left]] = [nums[left], nums[start]];
      start++;
    }
  }
  for (let right = 0; right < nums.length; right++) {
    if (nums[right] === 1) {
      [nums[start], nums[right]] = [nums[right], nums[start]];
      start++;
    }
  }
  return nums;
};

const ans = sortColors([2, 0, 2, 1, 1, 0]);
console.log("ans: ", ans);
